Automatic contact information transmission system

ABSTRACT

According to one aspect, a DVR sends a user&#39;s contact information over a network to a third party. Upon determining that a television program or advertisement contains a special tag that is associated with a third party, the DVR displays, to the user, a prompt that invites the DVR user to allow the DVR to send the user&#39;s contact information to the third party. If the user gives permission for the DVR to send the contact information to the third party, then the DVR sends the contact information to the third party (e.g., over the Internet).

This application claims priority, as a continuation application, toapplication Ser. No. 13/871,289 filed Apr. 26, 2013, which claimsbenefit to application Ser. No. 12/420,789 filed Apr. 8, 2009, now U.S.Pat. No. 8,438,596, Issued May 7, 2013, the entire contents of which ishereby incorporated by reference as if fully set forth herein, under 35U.S.C. §120. The applicant(s) hereby rescind any disclaimer of claimscope in the parent application(s) or the prosecution history thereofand advise the USPTO that the claims in this application may be broaderthan any claim in the parent application(s).

FIELD OF THE INVENTION

Embodiments of the invention generally relate to digital video recorders(DVRs). Embodiments of the invention relate more specifically totechniques for automatically transmitting a DVR user's contactinformation to an interested party so that the interested party cancontact the DVR user.

BACKGROUND

The approaches described in this section could be pursued, but are notnecessarily approaches that have been previously conceived or pursued.Therefore, unless otherwise indicated herein, the approaches describedin this section are not necessarily prior art to the claims in thisapplication and are not admitted to be prior art by inclusion in thissection.

As used herein, a “program” is any content, visual and/or audible, thatis presented through a television's display and/or speakers. Forexample, a program might be an episode of a multi-episode series, amovie, a sporting event, or a news presentation, although this is not anexclusive list of “programs.” When a digital video recorder (“DVR”)schedules a program for future recording, the DVR attempts to add theprogram to a “to do” list that the DVR maintains within the DVR's ownstorage mechanisms. Whenever a program on the DVR's “to do” list isbroadcasted, the DVR automatically records that program.

Often, a person will be watching a program or advertisement on histelevision, when he will see something about which he is interested inobtaining more information. The person might even see something that hewould like to purchase. However, often, the person will not have anynotion about how to obtain more information (or purchase) the thing thathe saw on his television. The program or advertisement might onlymention a product, but might give no indication about where or how tobuy that product, for example.

Sometimes, a program or advertisement will display a phone number thatthe person can call in order to obtain more information or purchase aproduct. However, some people might be too lazy, or too involved in theprogram that they are watching, to move to the telephone (which mightnot be located near to the television) and dial the displayed telephonenumber. Some people find telephone numbers difficult to remember, andmight forget what number they were supposed to dial by the time theyhave the opportunity to place a telephone call.

As a result, the person often ends up not obtaining the information orproduct in which he was interested, and the supplier of the informationor product potentially loses the person's business, from which thesupplier otherwise might have benefited.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings and in whichlike reference numerals refer to similar elements and in which:

FIG. 1 is a flow diagram that illustrates an example of a technique forobtaining, storing, and supplying a DVR user's contact information to aninterested party, according to an embodiment of the invention;

FIG. 2A illustrates an example system in which an embodiment of theinvention may be implemented;

FIG. 2B is a block diagram illustrating a general overview of thecomponents of a Digital Video Recorder (DVR), according to an embodimentof the invention; and

FIG. 3 is a block diagram that illustrates a digital video recorder uponwhich an embodiment may be implemented.

DETAILED DESCRIPTION

A method and apparatus for scheduling the recording of upcomingprograms, and for extending the duration of the time interval duringwhich those programs will be recorded, is described. In the followingdescription, for the purposes of explanation, numerous specific detailsare set forth in order to provide a thorough understanding of thepresent invention. It will be apparent, however, to one skilled in theart that the present invention may be practiced without these specificdetails. In other instances, well-known structures and devices are shownin block diagram form in order to avoid unnecessarily obscuring thepresent invention.

Embodiments are described herein according to the following outline:

-   -   1.0 General Overview    -   2.0 DVR Overview    -   3.0 Automatic Contact Information Transmission System    -   4.0 Implementation Mechanisms—Hardware Overview    -   5.0 Extensions and Alternatives

1.0 GENERAL OVERVIEW

The needs identified in the foregoing Background, and other needs andobjects that will become apparent for the following description, areachieved in the present invention, which comprises, in one aspect, atechnique whereby a DVR sends a DVR user's contact information (e.g.,name, telephone number, street address, e-mail address, etc.) over anetwork (e.g. the Internet) to a supplier of products, a supplier ofservices, and/or a supplier of information.

In one embodiment of the invention, the DVR prompts the DVR user (e.g.,the DVR's owner) to enter contact information for the DVR user. Thecontact information may include, among other items of information, theDVR user's name, one or more of the DVR user's telephone numbers, theDVR user's home street address (i.e., the address at which the DVR userlives), the DVR user's shipping address (if different from the DVRuser's home street address), and/or other information about the DVRuser. In response to the DVR's prompt, the DVR user supplies therequested contact information to the DVR. For example, the user mightsupply the contact information to the DVR via buttons on a DVR remotecontrol and an on-screen representation of selectable numbers, letters,and other characters which the contact information might comprise. Afterthe DVR user has supplied the requested contact information to the DVR,the DVR stores the contact information on the DVR's hard disk drive orother persistent storage mechanism.

According to one embodiment of the invention, a broadcaster oftelevision programs (e.g., via cable or via satellite signals) or someother party includes, encoded (e.g., in a closed-captioning stream)within a television program or advertisement, a “tag” or other code orsignal that the DVR is capable of understanding. The tag is of a kindthat indicates to the DVR that an interested party would like to receivethe DVR user's contact information. Additional information on tags thatmay be contained in, or broadcasted in conjunction with, televisionprograms or advertisements, is described in U.S. patent application Ser.No. 09/665,921, titled “CLOSED CAPTION TAGGING SYSTEM,” and in U.S.patent application Ser. No. 11/473,543, titled “IN-BAND DATA RECOGNITIONAND SYNCHRONIZATION SYSTEM.” Both U.S. patent application Ser. No.09/665,921 and U.S. patent application Ser. No. 11/473,543 areincorporated by reference for all purposes as though fully disclosedherein. In one embodiment of the invention, the tag is a specified,DVR-recognized code that is contained in the closed-captioning streamthat accompanies the television program or commercial; the tag may beembedded in the vertical blanking interval (VBI) of an analog signal, orin a private data channel in an MPEG2 multiplex. Although in oneembodiment of the invention, the tag is expressly inserted into theclosed-captioning stream (in addition to other text that is alreadycontained in that stream), in an alternative embodiment of theinvention, the tag is derived by inputting portions of the usualcontents of the closed-captioning stream into a hash function, whichproduces hash codes, at least some of which represent tags. In such analternative embodiment of the invention, there is no need to insert tagsinto the closed-captioning stream; instead, the tags are derived fromtext that is already contained in that stream. In yet another embodimentof the invention, tags can be derived from information that is containedin the frames of the video content itself, and/or from the audio thataccompanies the video content. Such video and/or audio data cansimilarly be passed through a hash function to derive hash codes, atleast some of which can be mapped to tags with specifiedcharacteristics. In one embodiment of the invention, the tag alsoidentifies a universal resource locator (“URL”) and/or e-mail address ofa supplier of information, services, and/or products (e.g., theinformation, services, or products that are featured in the televisionprogram or advertisement that contains the tag). In such an embodimentof the invention, upon determining that a television program oradvertisement contains such a tag, the DVR displays, to the DVR user, anicon and/or verbal prompt that invites the DVR user to allow the DVR tosend the DVR user's contact information to the supplier. For example,the DVR may display such an icon and/or prompt in an overlay in aportion of the television screen in a manner that does not interferesignificantly with the television program or advertisement that iscurrently being displayed; in this manner, the DVR may display the iconand/or prompt without interrupting the DVR user's viewing experience.The DVR's display of the icon and/or prompt may be accompanied by theDVR audibly playing a tone that helps to alert the DVR user as to thecurrent presence of the icon and/or prompt.

According to one embodiment of the invention, in response to the DVR'sdisplay of the icon and/or prompt described above, the DVR user is giventhe opportunity to either (a) permit the DVR to send the DVR user'scontact information to the supplier or (b) refuse to permit the DVR tosend the DVR user's contact information to the supplier. The DVR mayreceive input from the DVR user via the DVR remote control, for example.If the DVR user indicates, via the input, a refusal to allow the DVRuser's contact information to be sent, then the DVR prevents the DVRuser's contact information from being accessed by the supplier (by notsending the DVR user's contact information to the supplier).

Alternatively, if the DVR user indicates, via the input, permission forthe DVR to send the DVR user's contact information to the supplier,then, in one embodiment of the invention, the DVR reads the DVR user'scontact information from the DVR's hard disk drive or other persistentstorage device and sends the DVR user's contact information to the URLand/or e-mail address that is indicated in or otherwise associated withthe tag that is encoded in the television program or advertisement. Inone embodiment of the invention, the DVR sends such information over theInternet, initially through an Ethernet port or wireless communicationinterface through which the DVR is communicatively coupled to theInternet.

In one embodiment of the invention, when the DVR sends the DVR user'scontact information to the supplier's URL and/or e-mail address, aperson or automated mechanism at the supplier's end receives the DVRuser's contact information and takes some responsive action. Forexample, the person or mechanism may initiate a telephone call to one ormore of the telephone numbers that are specified in the DVR user'scontact information. During such a call, the person or mechanism mightprovide additional information to the DVR user about a product orservice that was featured in the television program or advertisement.Additionally or alternatively, during such a call, the person ormechanism might invite the DVR user to purchase a product or servicethat was featured in the television program or advertisement. Foranother example, the person or mechanism might send, over the Internet,an e-mail message to one or more of the DVR user's e-mail addresses thatare specified in the DVR user's contact information. For yet anotherexample, the person or mechanism might send, over the Internet, to theDVR, one or more instructions which cause the DVR to display informationto the DVR user on the television screen, and/or which cause the DVR torequest additional information from the DVR user via a DVR-generated anddisplayed user interface and the DVR remote control.

As a result of the foregoing techniques, DVR users are able to obtaininformation about products and services that those DVR users see ontelevision without being troubled with obtaining or remembering specificdetails about how to obtain that information. In one embodiment of theinvention, inviting a supplier to contact the DVR user can be achievedsimply through the DVR user's pressing of a button on the DVR remotecontrol. Thus, the DVR user does not need to scramble to write down atelephone number or look up information about a product or service thathe saw. The DVR user does not need to interrupt his television viewingexperience to find a telephone and dial a number (which many DVR usersmight be loathe to do). The foregoing techniques potentially benefitsuppliers and advertisers of information, products, and services, whootherwise might miss out on business opportunities that are madepossible from the DVR's provision of DVR users' contact information tothose suppliers and advertisers.

In other aspects, embodiments of the invention encompass a computerapparatus and a computer-readable storage medium configured to carry outthe foregoing technique.

2.0 DVR OVERVIEW

FIG. 2A illustrates an example system in which an embodiment of theinvention may be implemented. The system contains at least one clientdevice such as DVR 202 which is communicatively coupled to network 205through any communication interface, such as an Ethernet interface orwireless communications port. The functionality of a DVR is typified inU.S. Pat. No. 6,233,389, which is owned by the Assignee and is herebyincorporated by reference. The system also includes service provider204, content provider 206, personal computer 208 and portable device210.

Personal computer 208 may be a personal computing device, such as adesktop computer or laptop computer, and is also coupled to network 205through any communications interface, including wireless. Portabledevice 210 may be any handheld computing device, cellular phone,portable media player, or any other portable device capable ofdisplaying multimedia content and may be coupled to network 205 throughany communications interface, including wireless. DVR 202, personalcomputer 208, and portable device 210 each communicate with serviceprovider 204 through network 205. In another embodiment, DVR 202,personal computer 208, and portable device 210 each communicate withcontent provider 210 through network 205.

Network 205 may be implemented by any medium or mechanism that providesfor the exchange of data between devices in the communication system.Examples of network 205 include, without limitation, a network such as aLocal Area Network (LAN), Wide Area Network (WAN), the Internet, one ormore terrestrial, satellite or wireless links, etc. Alternatively oradditionally, any number of devices connected to network 205 may also bedirectly connected to each other through a communications link.

In one embodiment, content provider 206 provides broadcast programcontent to DVR 202 via cable, satellite, terrestrial communication, orother transmission method. Broadcast program content may include anymultimedia content such as: audio, image, or video content. In anotherembodiment, content provider 206 provides multimedia content, such asany downloadable content, through network 205 to DVR 202, personalcomputer 208, or portable device 210.

In one embodiment, DVR 202 communicates with service provider 204, whichprovides program guide data, graphical resources (such as fonts,pictures, etc.), service information, software, advertisements, eventidentification data, and other forms of data enable DVR 202 to operateindependently of service provider 204 to satisfy user interests. Inanother embodiment, DVR 202, personal computer 208, and portable device210 can communicate with each other to transfer content, metadata, orany other data through network 205, communication connection, or anylocal network.

In another embodiment, content provider 206 may provide, to serviceprovider 204, content data or any metadata, including promotional data,icons, web data, and other information. Service provider 204 may theninterpret the metadata and provide the content data metadata to DVR 202,personal computer 208, or portable device 210.

Referring to FIG. 2B, in an embodiment, DVR 202 generally comprises aplurality of components, signified by Signal Converter 254, that arenecessary to digitize an analog television signal and convert it into adigital data stream or accept a digital data stream. An example of theinternal structure and operation of a DVR is further described in U.S.Pat. No. 6,233,389.

DVR 202 receives broadcast signals from an antenna, from a cable TVsystem, satellite receiver, etc., via input 252A. Input 252A maycomprise a plurality of tuning modules that allow a plurality of signalsto be received and recorded simultaneously. For example, a TV inputstream received by input 252A may take the form of a National TelevisionStandards Committee (NTSC) compliant signal or a PAL compliant broadcastsignal. For another example, a TV input stream received by input 252Amay take a digital form such as a Digital Satellite System (DSS)compliant signal, a Digital Broadcast Services (DBS) compliant signal,or an Advanced Television Standards Committee (ATSC) compliant signal.DBS, DSS, and ATSC are based on standards called Moving Pictures ExpertsGroup 2 (MPEG-2) and MPEG-2 Transport. MPEG-2 Transport is a standardfor formatting the digital data stream from the TV source transmitter sothat a TV receiver can disassemble the input stream to find programs inthe multiplexed signal.

An MPEG-2 transport multiplex supports multiple programs in the samebroadcast channel with multiple video and audio feeds and private data.Input 252A tunes to a particular program in a channel, extracts aspecified MPEG stream from the channel, and feeds the MPEG stream to therest of the system. Analog TV signals are encoded into a similar MPEGformat using separate video and audio encoders, such that the remainderof the system is unaware of how the signal was obtained. Information maybe modulated into the vertical blanking interval (VBI) of the analog TVsignal in a number of standard ways; for example, the North AmericanBroadcast Teletext Standard (NABTS) may be used to modulate informationonto certain lines of an NTSC signal, which the FCC mandates the use ofa certain other line for closed caption (CC) and extended data services(EDS). Such signals are decoded by input 252A and passed to the othermodules as if the signals had been delivered via an MPEG-2 private datachannel.

Recording Module 260 records the incoming data stream by storing thedigital data stream on at least one storage facility, signified byStorage 264A/264B that is designed to retain segments of the digitaldata stream. Storage 264A/264B may be one or more non-volatile storagedevices (e.g., hard disk, solid state drive, USB external hard drive,USB external memory stick, USB external solid state drive, networkaccessible storage device, etc.) that are internal 264A and/or external264B. A Signal Converter 254 retrieves segments of the data stream,convert the data stream into an analog signal, and then modulate thesignal onto a RF carrier, via Output 252B, through which the signal isdelivered to a standard TV set. Output 252B may alternatively deliver adigital signal to a TV set or video monitor. For example, DVR 202 mayutilize a Digital Visual Interface port (DVI) for sending digitalsignals to a TV via a DVI cable.

DVR 202 also includes a Communication Interface 262, through which theDVR 202 communicates with Network 205 via Ethernet, wireless network,modem, or other communications standard. Further, DVR 202 may beintegrated into a TV system such that the components described above arehoused in a TV set capable of performing the functions of each componentof DVR 202.

In another embodiment, DVR 202 generally comprises a plurality ofcomponents necessary to receive, record, store, transfer and playbackdigital data signals from a plurality of sources, such as a PC, a DVR, aservice provider, or content server. DVR 202 can transfer digital datasignals to another DVR or PC. DVR 202 may encode or decode digitalsignals via Encoder 256A and Decoder 256B into a plurality of formatsfor playback, storage or transfer. According to one embodiment of theinvention, encoder 256A produces MPEG streams. According to anotherembodiment of the invention, encoder 256A produces streams that areencoded using a different codec. Decoder 256B decodes the streamsencoded by encoder 256A or streams that are stored in the format inwhich the streams were received using an appropriate decoder. DVR 202can also encrypt or decrypt digital data signals usingEncryptor/Decryptor 258 for storage, transfer or playback of the digitaldata signals.

In one embodiment, DVR 202 communicates with Service Provider 204, whichprovides program guide data, graphical resources such as brand icons andpictures, service information, software programs, advertisements, andother forms of data that enable DVR 202 to operate independently of theService Provider 204 to perform autonomous recording functions.Communication between DVR 202 and Service Provider 204 utilizes a securedistribution architecture to transfer data between the DVR 202 and theService Provider 204 such that both the service data and the user'sprivacy are protected.

3.0 AUTOMATIC CONTACT INFORMATION TRANSMISSION SYSTEM

FIG. 1 is a flow diagram that illustrates an example of a technique forobtaining, storing, and supplying a DVR user's contact information to aninterested party, according to an embodiment of the invention. In oneembodiment of the invention, at least some of the steps of theillustrated technique are performed by the DVR shown in FIGS. 2A and 2B.Alternative techniques, according to various alternative embodiments ofthe invention, may comprise fewer, greater, or different steps thanthose illustrated in FIG. 1.

Referring now to FIG. 1, in block 102, a DVR requests contactinformation from a DVR user. For example, the DVR may request thisinformation by sending a verbal request for the information to atelevision screen or monitor. In one embodiment of the invention, theDVR displays, on the television screen or monitor, a user interface thatdepicts user-selectable numbers and letters. By selecting these numbersand letters using navigation buttons on a DVR remote control, the DVRuser provides his contact information to the DVR. The user interface maycontain separate labeled fields into which the user can enter his name,one or more street addresses, one or more telephone numbers, one or moree-mail addresses, one or more instant messaging identities, one or morecredit card numbers, etc. In one embodiment of the invention, the DVRuser is permitted to leave certain fields blank.

The DVR may request the contact information initially the first timethat the DVR is powered on. Additionally or alternatively, the DVR mayrequest the contact information as part of a process whereby the DVRuser subscribes to a DVR service agreement (DVR users are typicallyrequired to subscribe to some service so that their DVRs can obtainelectronic programming guide information that the DVRs need in order todetermine the dates, times, and channels on which programs are going tobe broadcasted). In one embodiment of the invention, the DVR user canopt in or opt out of having the DVR use the user's personal informationautomatically whenever a contact information request is displayed. Inone embodiment of the invention, the DVR does not request the contactinformation until the contact information is needed (e.g., later in theprocess described below), and then only if the contact information hasnot yet been stored on the DVR's hard disk drive or other persistentstorage device.

In block 104, the DVR receives the DVR user's contact information fromthe DVR user. For example, the DVR may receive the DVR user's contactinformation through a DVR-generated and displayed user interface asdescribed above. Alternatively, the DVR may automatically retrieve theDVR user's contact information from a DVR service provider. In oneembodiment of the invention, multiple different user profiles are storedon the DVR, and different user contact information is received for andassociated with each user profile; the current user can select which ofthe several user profiles is active at any particular time. In oneembodiment of the invention, each user of the DVR has a different remotecontrol, which may be programmed to send, to the DVR, a user identifierthat is associated only with that remote control. Each user identifiermay be associated with a different user profile and different usercontact information. In such an embodiment of the invention, the DVRstores the received user contact information with the user profile whoseuser identifier is sent from the programmed remote control that iscurrently being used to enter the user contact information.

In block 106, in response to receiving the DVR user's contactinformation, the DVR persistently stores the DVR user's contactinformation on the DVR's hard disk drive or other persistent storagedevice.

In block 108, the DVR detects that a television signal (or other signal,such as a signal that the DVR is receiving over the Internet, or asignal that is contained in DVR-recorded content that the DVR isplaying, or a signal that the DVR is receiving from a cable or asatellite dish) that the DVR is receiving contains (or can have derivedfrom it) a code or tag that is of a certain specified type. In responseto detecting this code or tag in the signal, the DVR displays a verbalor textual prompt or icon on the television screen. The contents of theprompt may be based on a value that is specified in the tag; thus, theDVR may determine which prompt of several stored prompts is associatedwith the detected tag, and then fetch the associated prompt from astorage device for display. The verbal or textual prompt or icon informsthe DVR user that there is some supplier or other interested party whowould like to receive the DVR user's contact information. Typically,this supplier or interested party will be a person, organization, orother entity that is somehow associated with information, products, orservices that are represented within a television program oradvertisement that the signal represents or with which the signal isassociated. As is mentioned above, in one embodiment of the invention,the DVR causes the television to emit an audible sound that indicates,to the DVR user, that the icon or prompt is currently being displayed onthe television screen (so that the DVR user is more likely to notice theicon or prompt). In one embodiment of the invention, the prompt is inthe form of a question that identifies the requesting supplier orinterested party and asks the DVR user whether the DVR has the DVRuser's permission to send the DVR user's contact information to thesupplier or interested party. The DVR may present the icon and/or promptin a manner (e.g., in an overlay that is semi-transparent and occupiesonly a portion of the television screen) that does not significantlyintrude upon or interrupt the DVR user's television viewing experience.

In block 110, the DVR receives, from the DVR user, user input thatindicates whether the DVR user has granted the DVR permission to sendthe DVR user's contact information to the supplier or interested party.In one embodiment of the invention, the DVR user supplies this userinput by using the buttons on the DVR remote control to select a “YES”button or “NO” button that is displayed in the DVR-generated anddisplayed user interface. In one embodiment of the invention, the DVRuser supplies this user input by pushing either a “YES” button on theDVR remote control or a “NO” button on the DVR remote control. In oneembodiment of the invention, if a specified amount of time passes afterthe time that the DVR causes the icon or prompt to be displayed, and ifthe DVR has not yet received the user input from the DVR user, then theDVR treats the lack of user input as though the DVR user had selected“NO,” or some other refusal to grant the DVR permission to send the DVRuser's contact information. In one embodiment of the invention, the DVRtracks the number of times that a “YES” is selected, and the number oftimes that a “NO” is selected. In such an embodiment of the invention,the DVR sends this tracking information to the DVR service provider sothat the DVR service provider can inform interested advertisers how manyusers selected “YES,” and how many users selected “NO.” An example of areal-time DVR usage reporting system is described in U.S. patentapplication Ser. No. 12/190,519, which is titled “REAL-TIME DVR USAGEAND REPORTING SYSTEM,” and which is incorporated by reference for allpurposes as though fully disclosed herein.

In block 112, the DVR determines whether the user input indicates thatthe DVR user has given the DVR permission to send the DVR user's contactinformation to the supplier or interested party. If the DVR determinesthat the user input indicates that the DVR user has agreed to allow theDVR to send the contact information, then control passes to block 116.Otherwise, control passes to block 114.

In block 114, in response to the DVR user's denial of permission (orrefusal to grant permission) for the DVR to send the contactinformation, the DVR prevents the DVR user's contact information frombeing accessed by the supplier or interested party. In one embodiment ofthe invention, the DVR accomplishes this prevention by refraining fromsending the DVR user's contact information to the supplier or interestedparty. The DVR may remove the icon or prompt from the television screenor monitor and regular program viewing may continue in the same manneras before the icon or prompt was displayed. Control eventually passesback to block 108 when the DVR next detects another tag or code of thespecified kind in the television signal (or other signal, such as asignal that the DVR is receiving over the Internet, or a signal that iscontained in DVR-recorded content that the DVR is playing, or a signalthat the DVR is receiving from a cable or a satellite dish).

Alternatively, in block 116, in response to the DVR user's grant ofpermission for the DVR to send the contact information, the DVR readsthe DVR user's previously stored contact information from the DVR's oneor more storage devices, such as a hard disk drive or other persistentdevice (if that contact information has been stored by this time) andsends the DVR user's contact information over the Internet to asupplier, the service, or interested party that is associated with thetag or code mentioned above. In one embodiment of the invention, the tagor code contains or otherwise specifies a URL, e-mail address, orinstant messaging identity of the supplier or interested party. Undersuch circumstances, the DVR sends the DVR user's contact information (orat least a specified portion thereof) to the URL, e-mail address, orinstant messaging identity that is contained in or otherwise specifiedby the tag or code. In one embodiment of the invention, the DVR sendsthe DVR user's contact information over the Internet or some othernetwork (e.g., a LAN, a WAN, etc.). In an embodiment in which differentprogrammed remote controls correspond to different user profilesestablished on the same DVR, the DVR determines which user identifierwas received from the programmed remote control from which the user'sgrant of permission was received, and sends the contact information thatis associated with that user identifier.

In one embodiment of the invention, if the DVR determines that the DVRuser's contact information has not yet been stored on the DVR's harddisk drive or other persistent storage device by this time, then the DVRrequests the DVR user's contact information from the DVR user at thistime (e.g., using the techniques described above with reference toblocks 102-104), and stores that contact information on the DVR's harddisk drive or other persistent storage device for current and later use.Thus, in one embodiment of the invention, the first time that the DVRrequests and/or receives the DVR user's contact information is the firsttime that the DVR user agrees to allow the DVR to send the DVR user'scontact information to some supplier or interested party. After the DVRhas initially stored the DVR user's contact information, the DVR doesnot need to request the DVR user's contact information from the DVR useragain.

In one embodiment of the invention, the supplier or interested partyreceives the DVR user's contact information over the Internet. Inresponse to receiving this contact information, a person or mechanism atthe supplier or interested party's end may initiate contact with the DVRuser using the data that is contained within the contact information.For example, the person or mechanism may initiate a telephone call withthe DVR user by entering (or, as it used to be called, “dialing”) theperson's telephone number (as indicated in the contact information) intothe person or mechanism's telephone. For another example, the person ormechanism may send an e-mail message to an e-mail address that isindicated in the contact information. For another example, the person ormechanism may initiate an instant messaging session (e.g., using Yahoo!Instant Messenger) with the instant messaging identity that is indicatedin the contact information. An instant messaging application may executeon the DVR itself, thus allowing instant communication with the DVRuser, or on a computer that is also owned and/or used by the DVR user.For another example, the person or mechanism may send a letter, DVD, CD,sample, coupon, catalog, and/or other printed or encoded information toa street address that is indicated in the contact information. In oneembodiment of the invention, the person or mechanism initiates avoice-over-IP (“VOIP”) session with the DVR user's DVR using data (e.g.,an Internet Protocol (IP) address) that is contained in the contactinformation that the DVR sent over the Internet. The person or mechanismmay then communicate with the DVR user over this VOIP session.

Regardless of the communication approach that the person or mechanismuses to initiate communication with the DVR user, the person ormechanism may send a variety of communications to the DVR user. Forexample, the person or mechanism may send additional information about aproduct or service that was featured in the television program oradvertisement that the DVR user was watching at the time that the DVRasked the DVR user's permission to send the contact information. Foranother example, the person or mechanism may invite the DVR user topurchase such a service or product. In one embodiment of the invention,the person or mechanism uses credit card or bank information that iscontained in the contact information (though, in alternative embodimentsof the invention, the contact information may omit such credit card orbank information) to charge the DVR user for a service or product thatthe DVR user purchases in the communication with the person ormechanism.

4.0 IMPLEMENTATION MECHANISMS Hardware Overview

FIG. 3 is a block diagram that illustrates a computer system 300 uponwhich an embodiment of the invention may be implemented. Computer system300 includes a bus 302 or other communication mechanism forcommunicating information, and a processor 304 coupled with bus 302 forprocessing information. Computer system 300 also includes a main memory306, such as a random access memory (“RAM”) or other dynamic storagedevice, coupled to bus 302 for storing information and instructions tobe executed by processor 304. Main memory 306 also may be used forstoring temporary variables or other intermediate information duringexecution of instructions to be executed by processor 304. Computersystem 300 further includes a read only memory (“ROM”) 308 or otherstatic storage device coupled to bus 302 for storing static informationand instructions for processor 304. A storage device 310, such as amagnetic disk or optical disk, is provided and coupled to bus 302 forstoring information and instructions.

Computer system 300 may be coupled via bus 302 to a display 312, such asa cathode ray tube (“CRT”), for displaying information to a computeruser. An input device 314, including alphanumeric and other keys, iscoupled to bus 302 for communicating information and command selectionsto processor 304. Another type of user input device is cursor control316, such as a mouse, trackball, stylus, or cursor direction keys forcommunicating direction information and command selections to processor304 and for controlling cursor movement on display 312. This inputdevice typically has two degrees of freedom in two axes, a first axis(e.g., x) and a second axis (e.g., y), that allows the device to specifypositions in a plane.

The invention is related to the use of computer system 300 for selectinga frame of a multi-frame video program for display in accordance with aselected trick play mode of a DVR. According to one embodiment of theinvention, selecting a frame of a multi-frame video program for displayin accordance with a selected trick play mode of a DVR is provided bycomputer system 300 in response to processor 304 executing one or moresequences of one or more instructions contained in main memory 306. Suchinstructions may be read into main memory 306 from anothercomputer-readable medium, such as storage device 310. Execution of thesequences of instructions contained in main memory 306 causes processor304 to perform the process steps described herein. In alternativeembodiments, hard-wired circuitry may be used in place of or incombination with software instructions to implement the invention. Thus,embodiments of the invention are not limited to any specific combinationof hardware circuitry and software.

The term “computer-readable medium” as used herein refers to any mediumthat participates in providing instructions to processor 304 forexecution. Such a medium may take many forms, including but not limitedto, non-volatile media, volatile media, and transmission media.Non-volatile media includes, for example, optical or magnetic disks,such as storage device 310. Volatile media includes dynamic memory, suchas main memory 306. Transmission media includes coaxial cables, copperwire and fiber optics, including the wires that comprise bus 302.Transmission media can also take the form of acoustic or light waves,such as those generated during radio wave and infrared datacommunications.

Common forms of computer-readable media include, for example, a floppydisk, a flexible disk, hard disk, magnetic tape, or any other magneticmedium, a CD-ROM, any other optical medium, punchcards, papertape, anyother physical medium with patterns of holes, a RAM, a PROM, and EPROM,a FLASH-EPROM, or any other memory chip or cartridge.

Various forms of computer readable media may be involved in carrying oneor more sequences of one or more instructions to processor 304 forexecution. For example, the instructions may initially be carried on amagnetic disk of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over atelephone line using a modem. A modem local to computer system 300 canreceive the data on the telephone line and use an infrared transmitterto convert the data to an infrared signal. An infrared detector canreceive the data carried in the infrared signal and appropriatecircuitry can place the data on bus 302. Bus 302 carries the data tomain memory 306, from which processor 304 retrieves and executes theinstructions. The instructions received by main memory 306 mayoptionally be stored on storage device 310 either before or afterexecution by processor 304.

Computer system 300 also includes a communication interface 318 coupledto bus 302. Communication interface 318 provides a two-way datacommunication coupling to a network link 320 that is connected to alocal network 322. For example, communication interface 318 may be anintegrated services digital network (“ISDN”) card or a modem to providea data communication connection to a corresponding type of telephoneline. As another example, communication interface 318 may be a localarea network (“LAN”) card to provide a data communication connection toa compatible LAN. Wireless links may also be implemented. In any suchimplementation, communication interface 318 sends and receiveselectrical, electromagnetic or optical signals that carry digital datastreams representing various types of information.

Network link 320 typically provides data communication through one ormore networks to other data devices. For example, network link 320 mayprovide a connection through local network 322 to a host computer 324 orto data equipment operated by an Internet Service Provider (“ISP”) 326.ISP 326 in turn provides data communication services through the worldwide packet data communication network now commonly referred to as the“Internet” 328. Local network 322 and Internet 328 both use electrical,electromagnetic or optical signals that carry digital data streams. Thesignals through the various networks and the signals on network link 320and through communication interface 318, which carry the digital data toand from computer system 300, are exemplary forms of carrier wavestransporting the information.

Computer system 300 can send messages and receive data, includingprogram code, through the network(s), network link 320 and communicationinterface 318. In the Internet example, a server 330 might transmit arequested code for an application program through Internet 328, ISP 326,local network 322 and communication interface 318.

The received code may be executed by processor 304 as it is received,and/or stored in storage device 310, or other non-volatile storage forlater execution. In this manner, computer system 300 may obtainapplication code in the form of a carrier wave.

5.0 EXTENSIONS AND ALTERNATIVES

In the foregoing specification, the invention has been described withreference to specific embodiments thereof. It will, however, be evidentthat various modifications and changes may be made thereto withoutdeparting from the broader spirit and scope of the invention. Thespecification and drawings are, accordingly, to be regarded in anillustrative rather than a restrictive sense.

For example, in one embodiment of the invention, after the DVR hassupplied the DVR user's contact information to the interested party(e.g., a supplier), as described above, the interested party uses theinterested party's computer to initiate a voice-over-IP (“VOIP”) sessionwith the DVR. After such a session has been initiated, the interestedparty can speak directly to the DVR user via the DVR user's DVR andtelevision set, through VOIP packets transmitted over the Internet. Insuch an embodiment of the invention, the contact information that theDVR transmits to the interested party includes the DVR's IP addressand/or other identifiers that are unique to the DVR, so that theinterested party's computer is able to establish the VOIP connectionwith the DVR over the Internet.

In one such embodiment of the invention, a microphone is connected orbuilt into the DVR, so that the DVR is capable of receiving speech fromthe DVR user. In such an embodiment of the invention, the DVR transmits,over the VOIP connection, to the interested party's computer, audiblespeech that the DVR user emits. Thus, in one embodiment of theinvention, the DVR user and the interested party have a voicecommunication with each other without using the DVR user's telephone—theDVR itself performs the voice communications role that the telephoneotherwise would.

In a similar embodiment of the invention, the interested partyestablishes an over-the-Internet video conference between the interestedparty's computer and the DVR. The interested party and the DVR usercommunicate with each other in this video conference. The DVR mayoptionally be connected to or have a built-in video camera andmicrophone so that the interested party can both see and hear what theDVR user is doing and saying. In such an embodiment of the invention,the interested party's actions and speech can be presented to the DVRuser through the screen and speakers of the television to which the DVRis attached.

In a similar embodiment of the invention, the interested partyestablishes an instant messaging connection between the interestedparty's computer and the DVR. The interested party and the DVR usercommunicate with each other in this video conference.

Although embodiments of the invention have been described above withreference to a DVR, alternative embodiments of the invention may beimplemented in, and used relative to, devices other than a DVR. Forexample, in one embodiment of the invention, a portable memory device isused in placed of the DVR discussed above. An example of such a portablememory device, and such a device's other possible applications fortransporting content, is described in U.S. patent application Ser. No.12/191,261, which is titled “CONTENT DISTRIBUTION SYSTEM USINGTRANSPORTABLE MEMORY DEVICES,” and which is incorporated by referencefor all purposes as though fully disclosed herein. At least someimplementations of such a portable memory device do not require theability to record television programs (e.g., some such devices mightretrieve content from the Internet only).

What is claimed is:
 1. A method for transmitting contact information,the method comprising: receiving, at a multimedia device, particularcontent over the Internet; detecting, by the multimedia device, a datastream portion among a plurality of non-displayable data stream portionsthat are received along with the received particular content, the datastream portion representing an invitation to the multimedia device tosend a user's contact information to a third party that is associatedwith the data stream portion, and the data stream portion beingassociated with a communication address of the third party; in responseto detecting the data stream portion, the multimedia device performing:determining a particular interactive icon specified by the data streamportion, the particular interactive icon being among a plurality oficons that are stored on the multimedia device; presenting theparticular interactive icon with the received particular content whileplaying back the received particular content to request the user'spermission to send the user's contact information to the third partythat is associated with the data stream portion.
 2. The method of claim1, wherein the user's contact information comprises the user's name andat least one of: (a) the user's street address, (b) the user's telephonenumber, (c) the user's e-mail address, and (d) the user's instantmessaging identifier.
 3. The method of claim 1, further comprisingsending the user's contact information to the third party over anetwork.
 4. The method of claim 1, wherein the multimedia devicereceives the user's contact information from the user through a userinterface generated by the multimedia device.
 5. The method of claim 1,wherein the communication address of the third party identifies at leastone of: (a) a uniform resource locator (URL) that is associated with thethird party, (b) an e-mail address of the third party, or (c) theinstant messaging identifier of the third party.
 6. The method of claim1, wherein the multimedia device sends the user's contact information tothe third party by sending the user's contact information to thecommunication address of the third party.
 7. The method of claim 1,wherein, during the multimedia device's display of the receivedparticular content, the particular icon signifies, to the user, that aparty associated with the received particular content is interested inobtaining the user's contact information.
 8. The method of claim 1,wherein the multimedia device stores the user's contact information bystoring the user's contact information on one or more storage deviceswithin the multimedia device.
 9. The method of claim 1, furthercomprising: in response to receiving the data stream portion, requestingthe user's contact information from the user during a presentation ofthe received particular content.
 10. The method of claim 1, wherein themultimedia device requests the user's permission to send the user'scontact information to the third party by displaying an overlay over apresentation of the received particular content; and wherein the overlayidentifies the third party.
 11. The method of claim 1, wherein thecontact information includes data that identifies the multimedia device,and wherein after sending the user's contact information to the thirdparty, the multimedia device facilitates live communication between theuser and the third party.
 12. The method of claim 11, wherein themultimedia device facilitates live communication between the user andthe third party using voice-over-IP (VOIP) protocol.
 13. The method ofclaim 11, wherein the multimedia device facilitates live communicationsbetween the user and the third party using instant messaging.
 14. Adevice configured to: receiving, at a multimedia device, particularcontent over the Internet; detecting, by the multimedia device, a datastream portion among a plurality of non-displayable data stream portionsthat are received along with the received particular content, the datastream portion representing an invitation to the multimedia device tosend a user's contact information to a third party that is associatedwith the data stream portion, and the data stream portion beingassociated with a communication address of the third party; in responseto detecting the data stream portion, the multimedia device performing:determining a particular interactive icon specified by the data streamportion, the particular interactive icon being among a plurality oficons that are stored on the multimedia device; presenting theparticular interactive icon with the received particular content whileplaying back the received particular content to request the user'spermission to send the user's contact information to the third partythat is associated with the data stream portion.
 15. The device of claim14, wherein the user's contact information comprises the user's name andat least one of: (a) the user's street address, (b) the user's telephonenumber, (c) the user's e-mail address, and (d) the user's instantmessaging identifier.
 16. The device of claim 14, wherein the device isfurther configured to send the user's contact information to the thirdparty over a network.
 17. The device of claim 14, wherein the device isfurther configured to receive the user's contact information from theuser through a user interface generated by the device.
 18. The device ofclaim 14, wherein the data stream portion identifies at least one of:(a) a uniform resource locator (URL) that is associated with the thirdparty, or (b) an e-mail address of the third party.
 19. The device ofclaim 14, wherein the device is configured to send the user's contactinformation to the interested party by sending the user's contactinformation to at least one of: (a) the URL, (b) the e-mail address ofthe interested party, and (c) the instant messaging identifier of theinterested party.
 20. The device of claim 14, wherein, during thedevice's display of the received particular content, the particular iconsignifies, to the user, that a party associated with the receivedparticular content is interested in obtaining the user's contactinformation.
 21. The device of claim 14, wherein the device is furtherconfigured to store the user's contact information by storing the user'scontact information on one or more storage devices within the device.22. The device of claim 14, wherein the device is further configured to:in response to receiving the data stream portion, request the user'scontact information from the user during a presentation of the receivedparticular content.
 23. The device of claim 14, wherein the device isfurther configured to request the user's permission to send the user'scontact information to the third party by displaying an overlay over apresentation of the received particular content; and wherein the overlayidentifies the third party.
 24. The device of claim 14, wherein thecontact information includes data that identifies the device, andwherein after sending the user's contact information to the third party,the device facilitates live communication between the user and the thirdparty.
 25. The device of claim 24, wherein the device is configured tofacilitate live communication between the user and the third party usingvoice-over-IP (VOIP) protocol.
 26. The device of claim 24, wherein thedevice is configured to facilitate live communications between the userand the third party using instant messaging.